package com.tedu.day02.oop;

/**
 * super关键字----继承---方法
 * 引用当前父类的对象  父类的引用
 *    super.属性    [父类属性】
 *    super.方法      【父类方法】
 *    super（）        【父类构造器】       super()默认存在
 *                                        出现在子类的构造器[首行】
 */
class Animal{
    //属性  成员变量
    String name="动物";
    //方法  成员方法
    public void say(){
        System.out.println(name+"每当想起你时");
    }

    public Animal() {   //无参构造器
        System.out.println("父类  动物  构造器");
    }

         public Animal(String name) { //有参构造器
        this.name = name;
    }
}
class Dog extends Animal{
         public Dog() { //子类：super（）首钢
        super("狗");
        System.out.println("子类  狗  构造器");//②
    }

        public void say(){
        System.out.println("旺旺");
    }

    public void sayTest(){  //测试 属性 方法
             System.out.println(super.name+"|||||"); //③调用父类的属性
        super.say();  //④调用父类的方法 输出
    }
}
public class super关键字 {
         public static void main(String[] args){

            Dog d=new Dog();//①②  调构造器  发生在子类
                             //掉哦那个父类有参构造器，肯定给父类属性传值
        d.sayTest();  //③④  方法 属性        发生在子类
    }
}
